package com.pmsystem.util.account;

import java.util.Map;

public interface CashAccount {
	
	/**
	 * <p>Title: ParkingCashAccount</p>  
	 * <p>Description:
	 * 		收费规则rule=1：	 起步时段固定收费，超出时段按时间收费<br>
	 * 						停车时间少于param1时，收取费用param2，超出的时间每param4收取param3的费用<br>
	 * 		收费规则rule=2: 	起步时段按时收费，超出时段则收取罚款<br>
	 * 						停车每param3时收取param2的费用，超过param1时则额外交param4的罚款费用<br>
	 * 		收费规则rule=3:	起步时段按时收费，超出时段则固定一个费用<br>
	 * 						停车每param3时收取param2的费用，超过param1时则固定费用param4<br>
	 * 		收费规则rule=4：	阶梯固定费用<br>
	 * 						停车时间少于param1时收取param2费用，少于param3时收取param4费用，超出param3则收取param5费用<br>
	 * 		收费规则rule=5:	固定收费param1<br>
	 *  </p>  
	 * @author 树昌
	 * @param rule	收费规则
	 * @param time	停车的时间
	 * @param map	数据库存放规则的键值对
	 * @return	返回应收取的费用，返回空则数据异常
	 */
 	Float ParkingCashAccount(int rule,Float time,Map<String, Float> map);
 	
 	/**
 	 * <p>Title: ConsumeCashAccount</p>  
 	 * <p>Description:
 	 * 		收费规则rule=6:	每使用param2的量，收取param1的费用 <br>
 	 * 		收费规则rule=7:	阶梯式收费<br>
 	 * 						第一阶段，在param3使用量的限制内，每使用param2的量收取param1的费用<br>
 	 * 						第二阶段，在param5使用量的限制内，超出param3的限制每多使用param2的量收取param4的费用<br>
 	 * 						第三阶段，超出param5的使用量限制，每多使用param2的量收取param6的费用<br>
 	 * 		收费规则rule=8：	有多少个人(名额),收多少个固定的费用param1<br>
 	 * </p>  
 	 * @author 树昌
 	 * @param rule	收费规则
 	 * @param waste	资源使用量
 	 * @param map	数据库存放规则的键值对
 	 * @return		返回应收取费用，返回空则数据异常
 	 */
 	Float ConsumeCashAccount(int rule,Float waste,Map<String, Float> map);
	
}
